﻿$(function () {
    // 1.封装数据渲染功能
    // 定义当前页
    let pages = 1
    // 每页条数数据
    let pageSize = 5
    function arrly() {
        $.ajax({
            // 请求类型
            type: "get",
            // 请求地址
            url: "/category/querySecondCategoryPaging",
            // 请求数据
            data: {
                page: pages,
                pageSize: pageSize
            },
            // 返回的数据  'text', 'xml', 'json', 'script'
            dataType: "json",
            success: function (res) {
                // console.log(res)
                // 使用模板
                let str = template('tmp', res)
                // 赋值
                $('tbody').html(str)
                // 生成页面数
                paging(res.total)
            }
        })
    }
    arrly()



    // 2.分页功能 ==》 使用bs的插件
    function paging(userSun) {
        $("#paginator").bootstrapPaginator({
            // 默认是2，如果是bootstrap3版本，这个参数必填
            bootstrapMajorVersion: 3,
            // 当前页
            currentPage: pages,
            // 总页数 ==》 页数 = 总数据数 / 一页放多少条数据  然后再进行上去取整
            totalPages: Math.ceil(userSun / pageSize),
            // 设置控件的大小，mini, small, normal,large
            size: "normal",
            onPageClicked: function (event, originalEvent, type, page) {
                // 为按钮绑定点击事件 page:当前点击的按钮值
                pages = page
                arrly()
            }
        })
    }




    // 3.添加分类的==》现在一级分类
    $.ajax({
        // 请求类型
        type: "get",
        // 请求地址
        url: '/category/queryTopCategoryPaging',
        // 请求数据
        data: {
            page: 1,
            pageSize: 1000
        },
        // 返回的数据  'text', 'xml', 'json', 'script'
        dataType: "json",
        success: function (res) {
            // console.log(res)
            //alert("成功时调用")
            // 使用模板
            let str = template('tmp1', res)
            // 赋值
            $('.dropdown-menu').html(str)
        }
    })





    // 4.模拟下拉菜单选中
    // 1- 给a标签绑定点击事件 ，当a标签被点击时：
    // 2- 获取a标签的文本，赋值给按钮的文本
    // 3- 获取a标签对应id， 赋值给隐藏域
    $('.dropdown-menu').on('click', 'a', function () {
        $('.cate-btn').text($(this).text())
        $('#categoryId').val($(this).data('id'))

        // 下拉菜单手动改变样式
        $('.form-add').data('bootstrapValidator').updateStatus('categoryId', 'VALID')
    })



    // 5.图片上传
    $("#file").fileupload({
        dataType: "json",
        //e：事件对象
        //data：图片上传后的对象，通过data.result.picAddr可以获取上传后的图片地址
        done: function (e, data) {
            // 获取到图片的路径地址
            let picAddr = data.result.picAddr
            $('#img').attr({
                src: picAddr
            })
            // 将图片地址存在隐藏域中
            $('[name="brandLogo"]').val(picAddr)
            // 上传图片的时候要进行手动改变样式
            $('.form-add').data('bootstrapValidator').updateStatus('brandLogo', 'VALID')
        }
    })




    // 6.表单校验
    $('.form-add').bootstrapValidator({
        //1. 指定不校验的类型，默认为[':disabled', ':hidden', ':
        excluded: [':disabled'],

        //2. 指定校验时的图标显示，默认是bootstrap风格
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },

        //3. 指定校验字段
        fields: {
            //校验用户名，对应name表单的name属性
            brandName: {
                validators: {
                    //不能为空
                    notEmpty: {
                        message: '请输入二级分类名称'
                    }
                }
            },
            categoryId: {
                validators: {
                    //不能为空
                    notEmpty: {
                        message: '请选择一级分类'
                    }
                }
            },
            brandLogo: {
                validators: {
                    //不能为空
                    notEmpty: {
                        message: '请上传图片'
                    }
                }
            }
        }
    })




    // 7-添加二级分类
    $(".form-add").on('success.form.bv', function (e) {
        // 阻止提交按钮的默认行为
        e.preventDefault()

        // 表单获取到所有的键跟值的拼接
        let str = $('.form-add').serialize()
        $.ajax({
            // 请求类型
            type: "post",
            // 请求地址
            url: "/category/addSecondCategory",
            // 请求数据
            data: str,
            // 返回的数据  'text', 'xml', 'json', 'script'
            dataType: "json",
            success: function (res) {
                // 重新渲染
                arrly()
                // 模态框隐藏
                // $('#mo-add').modal('hide')
                $('.modal-add').modal('hide');
                // 重置表单校验样式和数据
                $('.form-add').data('bootstrapValidator').resetForm(true)
                // 手动恢复图片和按钮文字
                $('#img').attr({
                    src: './images/none.png'
                })
                $('.cate-btn').text('请选择一级分类')
            }
        })
    })


})